package org.fas.utils
{
	public class FuNumber
	{
		public static function sum(...args):Number{
			var _args:Array = args as Array;
			var _sum:Number =0 ;
			for(var i:int=0;i<_args.length;i++){
				_sum+=Number(_args[i]);
			}
			return _sum;
		}
		public static function removeLeadingZeroAndHoldLength(_num:Number,_length:int=3):String{
			var _str:String = String(_num);
			if(_str.split('.')[1]){
				_str = _str.split('.')[1].toString();
				if(_str.length>=_length){
					_str = _str.substr(0,_length);
				}else{
					_str =String( Number(_str)*Math.pow(10,_length-_str.length));
				}
			}else{
				_str = String(1*Math.pow(10,_length-1));
				_str = _str.replace('1','0');
			}
			return '.'+_str;
		}
		public static function addLeadingZero(n:Number,_sumZero:uint=2):String
		{
			var out:String = String(n);
			if(_sumZero==2){
				if(n < 10 && n > -1)
				{
					out = "0" + out;
				}
			}else if(_sumZero==3){
				if(n < 10 && n > -1)
				{
					out = "00" + out;
				}else if(n<100 && n>=10){
					out = '0'+out;
				}
			}
			return out;
		}
		public static function converPointNumber(_num:Number,_chara:int):Number{
			return Math.round(_num*100)/100;
		}
		public static function inStep(_nowNum:Number,_maxNum:Number,_minNum:Number=0):Number{
	        if (_nowNum<_minNum || _nowNum>_maxNum) {
                var _length:Number = _maxNum-_minNum+1;
                var distance:Number = _nowNum-_maxNum;
                var num:Number = Math.ceil(distance/_length);
                return _nowNum-num*_length;
	        }
	        return _nowNum;
		}
		public static function nextStep(_nowNum:Number,_maxNum:Number,_minNum:Number=0,_stepNum:Number=1):Number{
			return inStep(_nowNum+_stepNum,_maxNum,_minNum);
		}
		public static function nextInt(_nowNum:Number,_maxNum:Number,_minNum:Number=0,_stepNum:Number=1):int{
			return inStep(_nowNum+_stepNum,_maxNum,_minNum);
		}
		public static function lastInt(_nowInt:int,_maxInt:int,_minInt:int=0,_stepInt:int=-1):int{
			return nextInt(_nowInt,_maxInt,_minInt,_stepInt);
		}
	}
}